home *** CD-ROM | disk | FTP | other *** search
- > Hi boys,
- > I know this is not the right list... (do you know a C list?), but I need
- > someone which can program in assembler and understand AmosPro very well.
- > Is anybody out there able to do these things?
- > I need someony to convert some Amos procedure in Assembler to make them
- > much faster. In fact I want to make a graphic interface for POV-Ray for
- > the Amiga leaving other users on different plattform wanting to buy an
- > Amiga just to use it ;)
- > I know some geometry to start working. I have also done a "simple"
- > program to build Bezier curves to use in POV-Ray with a simple 3D rotating
- > session, but it is quite slow. 16 points and relative wires are updated
- > no more than 5-6 times on my A1200. Think about a scene where there are
- > more than 100 lines and points and all will freeze!
- > There is no way to use the math copro in AMOS?
- >
- > So I need someone to translate my AMOSPro routine in Assembler and then
- > he must tell me how to call the soubroutine from AMOS.
- > If he knows a little of mathematics and geometry (matricial) would be very
- > appreciated.
- >
- > NOTE: NO MONEY!!!!!
- >
- > I don't want to make money after a free! (Which is also very good!).
- >
- > Thanks
- >
- > M&F
- >
-
- Hello!
-
- I have programmed a protein (wire-frame) viewing program
- and I have experienced the same speed problems as you have.
- After having optimized the code, I have started to translate
- some routines in Assembler. Unfortunately, I was quite
- disappointed at the speed-increase. Excepted a simple
- Bubblesort routine which I use for a Z-sort and which
- ran about 40 times faster, the rest did not even run
- twice as fast as before. I'm not an Assembler expert, but
- I tried to use registers and keep the data in the cache. I
- don't believe that a good Assembler programmer would make it
- run much faster.
-
- Anyway, as the program rotates about 550 lines 5 times per
- second on my A4000/040 and it did maybe 300 lines before
- I used my Assembler routines, I guess that you could speed
- up your actual program a lot by simply optimizing it!
- (An A1200 can't be 15-20 times slower than a A4000, can it?)
-
- First, use only interger arithmetics by multiplying all coordinates
- by 2^x with x being at least 10 (depends on the accuracy needed).
- Before displaying it on the screen you will have to divide it again by
- this number, but fortunately both, multiplication and division can
- be done with the shift operators of AmosPro (Asr.l and Asl.l, I think.
- I have Amos Creator where they don't exist.)
- Do also use the commands Add and Sub where possible. They are all
- translated pretty much 1:1 in Assembler, at least I guess so.
-
- Secondly, use the TurboLib extension! The F_draw command is about
- twice as fast as the AMOS command which makes an enormous speed
- increase (in the current version of my program, 50% of the time
- is consumed in the drawing routine!). You can also use the fast
- command to clear the bitplanes.
-
- I have never tested Amos3D, but maybe this could also be of some
- help? Anyone?
-
- Good luck,
-
- Chris
-
-